package swimv2gm.bl.domain;

import javax.persistence.*;

/**
 * Una relazione di amicizia tra due utenti.
 * 
 * @author Matteo Gallesio
 */
@Entity(name = "amicizie")
@IdClass(value = FriendshipPK.class)
public class Friendship implements java.io.Serializable {
	private static final long serialVersionUID = 7552234010852395985L;
	@Id
	@ManyToOne
	private User mittente;
	@Id
	@ManyToOne
	private User destinatario;

	@Column(nullable = false)
	private boolean accettata = false;

	/**
	 * Verifica se questa richiesta è stata accettata.
	 * 
	 * @return <code>true</code> se la richiesta è già stata accetatta,
	 *         <code>false</code> altrimenti.
	 */
	public boolean isAccettata() {
		return accettata;
	}

	/**
	 * Imposta lo stato di accettazione di questa richiesta.
	 * 
	 * @param accettata
	 *            il nuovo stato
	 */
	public void setAccettata(boolean accettata) {
		this.accettata = accettata;
	}

	/**
	 * Restituisce il mittente di questa richiesta.
	 * 
	 * @return il mittente
	 */
	public User getMittente() {
		return mittente;
	}

	/**
	 * Imposta il mittente di questa richiesta.
	 * 
	 * @return il mittente
	 */
	public void setMittente(User mittente) {
		this.mittente = mittente;
	}

	/**
	 * Restituisce il destinatario di questa richiesta.
	 * 
	 * @return il destinatario
	 */
	public User getDestinatario() {
		return destinatario;
	}

	/**
	 * Imposta il destinatario di questa richiesta.
	 * 
	 * @return il destinatario
	 */
	public void setDestinatario(User destinatario) {
		this.destinatario = destinatario;
	}
}
